package com.example.mybatisplusclass2.controller;

import com.example.mybatisplusclass2.entity.Product;
import com.example.mybatisplusclass2.service.IFileInfoService;
import com.example.mybatisplusclass2.service.IProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.view.RedirectView;

import java.util.List;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author liu
 * @since 2024-06-11 14:07:25
 */
@Controller
@RequestMapping("shop/product")
public class ProductController {
    @Autowired
    private IProductService productService;
//    @Autowiredx
//    private IFileInfoService fileInfoService;


    @RequestMapping("")
//    同时查出获取产品列表和文件信息

    public String list(Model model) {
        List<Product> products = productService.getAll();
        model.addAttribute("products", products);
        return "productList";
    }
//    public String list(Model model) {
//        List<Product> products = productService.list();
//        model.addAttribute("products", products);
//        return "productList";
//    }

    @GetMapping("/addProducts")
    public String addProducts(Model model) {
        Product product = new Product();
        model.addAttribute("product", product);
        // 可以在这里添加一些初始化数据到model中，比如预填充表单的默认值
        return "productAdd";
    }


    @PostMapping("/addProducts")
    public String addProducts(@ModelAttribute("product") Product product ) {
        productService.save(product);
        // 添加成功后，可以重定向到学生列表页面或其他页面
        return "redirect:/shop/product";
    }


    @GetMapping("/updateProducts/{id}")
    public String updateProducts(@PathVariable Integer id, Model model) {
        Product product = productService.getById(id);
        model.addAttribute("product", product);
        return "productUpdate";
    }

    @PostMapping("/updateProducts/{id}")
    public String UpdateSkills(@ModelAttribute("product") Product product) {
        productService.updateById(product);
        // 更新成功后，可以重定向到技能列表页面或其他页面
        return "redirect:/shop/product";
    }


    //    删除技能
    @GetMapping("/deleteProducts/{id}")
    public RedirectView deleteProducts(@PathVariable Integer id) {
        productService.removeById(id);
        // 删除成功后，可以重定向到技能列表页面或其他页面
        return new RedirectView("/shop/product");
    }
}


